home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / tex / sauter.zip / C-CMBX.MF < prev    next >
Text File  |  1990-09-16  |  10KB  |  248 lines

  1. % Compute the font construction parameters for the Computer
  2. % Modern Bold Extended family.  Some other fonts in the
  3. % Computer Modern family compute their parameters as
  4. % modifications of these.
  5.  
  6.  
  7. u#:=               % unit width
  8.     (if design_size < 10: ((design_size*17)+60)
  9.                     else: ((design_size*20)+30)fi)/360pt#;
  10.  
  11. width_adj#:=       % width adjustment for certain characters
  12.     (if design_size < 10: ((design_size*8)+30)
  13.                     else: ((design_size*10)+10)fi)/360pt#;
  14.  
  15. serif_fit#:=       % extra sidebar near lowercase serifs
  16.                           0pt#;
  17.  
  18. cap_serif_fit#:=   % extra sidebar near uppercase serifs
  19.     (if design_size < 10: ((design_size*8)-10)
  20.                     else: ((design_size*5)+20)fi)/360pt#;
  21.  
  22. letter_fit#:=      % extra space added to all sidebars
  23.     (if design_size <  8: (-(design_size*10)+80)
  24.                     else: (0)fi)/360pt#;
  25.  
  26. body_height#:=     % height of tallest characters
  27.                           (design_size*270)/360pt#;
  28.  
  29. asc_height#:=      % height of lowercase ascenders
  30.                           (design_size*250)/360pt#;
  31.  
  32. cap_height#:=      % height of caps
  33.                           (design_size*247)/360pt#;
  34.  
  35. fig_height#:=      % height of numerals
  36.                           ((design_size*232) + 0.00006)/360pt#;
  37.  
  38. x_height#:=        % height of lowercase without ascenders
  39.                           (design_size*160)/360pt#;
  40.  
  41. math_axis#:=       % axis of symmetry for math symbols
  42.                           (design_size*90)/360pt#;
  43.  
  44. bar_height#:=      % height of crossbar in lowercase e
  45.     (if design_size < 10: ((design_size*90)-50)
  46.                     else: (design_size*85)fi)/360pt#;
  47.  
  48. comma_depth#:=     % depth of comma below baseline
  49.                           (design_size*70)/360pt#;
  50.  
  51. desc_depth#:=      % depth of lowercase descenders
  52.                           (design_size*70)/360pt#;
  53.  
  54. crisp#:=           % diameter of serif corners
  55.                           0/360pt#;
  56.  
  57. tiny#:=            % diameter of rounded corners
  58.     (if design_size <  9: ((design_size*10)+40)
  59.                     else: (130)fi)/360pt#;
  60.  
  61. fine#:=            % diameter of sharply rounded corners
  62.     (if design_size <  6: ((design_size*10)+30)
  63.  elseif design_size <  7: (90)
  64.  elseif design_size <  8: ((design_size*10)+20)
  65.                     else: (100)fi)/360pt#;
  66.  
  67. thin_join#:=       % width of extrafine details
  68.     (if design_size <  6: ((design_size*10)+30)
  69.  elseif design_size <  7: (90)
  70.  elseif design_size <  8: ((design_size*10)+20)
  71.  elseif design_size < 10: (100)
  72.                     else: ((design_size*2.5)+75)fi)/360pt#;
  73.  
  74. hair#:=            % lowercase hairline breadth
  75.     (if design_size < 10: ((design_size*4)+130)
  76.                     else: ((design_size*6.5)+105)fi)/360pt#;
  77.  
  78. stem#:=            % lowercase stem breadth
  79.     (if design_size <  7: ((design_size*40)+40)
  80.                     else: ((design_size*30)+110)fi)/360pt#;
  81.  
  82. curve#:=           % lowercase curve breadth
  83.     (if design_size <  9: ((design_size*40)+70)
  84.                     else: ((design_size*30)+160)fi)/360pt#;
  85.  
  86. ess#:=             % breadth in middle of lowercase s
  87.     (if design_size <  7: (-(design_size*design_size*10) +
  88.                            (design_size*170)-410)
  89.                     else: ((design_size*30)+80)fi)/360pt#;
  90.  
  91. flare#:=           % diameter of bulbs or breadth of terminals
  92.     (if design_size <  8: ((design_size*40)+70)
  93.                     else: ((design_size*30)+150)fi)/360pt#;
  94.  
  95. dot_size#:=        % diameter of dots
  96.     (if design_size < 10: ((design_size*50)+60)
  97.                     else: ((design_size*30)+260)fi)/360pt#;
  98.  
  99. cap_hair#:=        % uppercase hairline breadth
  100.     (if design_size <  6: ((design_size*10)+120)
  101.  elseif design_size <  7: (180)
  102.  elseif design_size <  8: ((design_size*10)+110)
  103.  elseif design_size <  9: (190)
  104.                     else: ((design_size*5)+140)fi)/360pt#;
  105.  
  106. cap_stem#:=        % uppercase stem breadth
  107.     (if design_size <  8: ((design_size*50)+30)
  108.  elseif design_size < 10: ((design_size*40)+110)
  109.                     else: ((design_size*30)+210)fi)/360pt#;
  110.  
  111. cap_curve#:=       % uppercase curve breadth
  112.     (if design_size <  9: ((design_size*50)+60)
  113.  elseif design_size < 10: ((design_size*40)+150)
  114.                     else: ((design_size*30)+250)fi)/360pt#;
  115.  
  116. cap_ess#:=         % breadth in middle of uppercase s
  117.     (if design_size <  7: (-(design_size*design_size*5) +
  118.                            (design_size*125) - 260)
  119.  elseif design_size <  9: (-(design_size*design_size*5) +
  120.                            (design_size*135) - 330)
  121.  elseif design_size < 10: ((design_size*50)+30)
  122.                     else: ((design_size*30)+230)fi)/360pt#;
  123.  
  124. rule_thickness#:=  % thickness of lines in math symbols
  125.     (if design_size <  7: ((design_size*4)+23)
  126.                     else: ((design_size*3)+30)fi)/100pt#;
  127.  
  128. dish#:=            % amount erased at top or bottom of serifs
  129.     (if design_size <  8: ((design_size*1)+2)
  130.                     else: (10)fi)/360pt#;
  131.  
  132. bracket#:=         % vertical distance from serif base to tangent
  133.                           (design_size*10)/360pt#;
  134.  
  135. jut#:=             % protrusion of lowercase serifs
  136.     (if design_size <  8: ((design_size*20)+30)
  137.  elseif design_size < 10: ((design_size*30)-50)
  138.                     else: (design_size*25)fi)/360pt#;
  139.  
  140. cap_jut#:=         % protrusion of uppercase serifs
  141.     (if design_size < 10: ((design_size*40)-10)
  142.                     else: ((design_size*35)+40)fi)/360pt#;
  143.  
  144. beak_jut#:=        % horizontal protrusion of beak serifs
  145.     (if design_size < 10: ((design_size*8)+30)
  146.                     else: ((design_size*7)+40)fi)/360pt#;
  147.  
  148. beak#:=            % vertical protrusion of beak serifs
  149.     (if design_size < 10: (-(design_size*design_size*5) +
  150.                            (design_size*165) - 450)
  151.                     else: (design_size*70)fi)/360pt#;
  152.  
  153. vair#:=            % vertical diameter of hairlines
  154.     (if design_size <  6: ((design_size*10)+50)
  155.  elseif design_size < 10: ((design_size*5)+80)
  156.                     else: ((design_size*6.5)+65)fi)/360pt#;
  157.  
  158. notch_cut#:=       % maximum breadth above or below notches
  159.                            (design_size) * pt#;
  160.  
  161. bar#:=             % lowercase bar thickness
  162.     (if design_size < 10: ((design_size*10)+70)
  163.                     else: ((design_size*7.5)+95)fi)/360pt#;
  164.  
  165. slab#:=            % serif and arm thickness
  166.     (if design_size < 10: ((design_size*10)+70)
  167.                     else: ((design_size*7.5)+95)fi)/360pt#;
  168.  
  169. cap_bar#:=         % uppercase bar thickness
  170.     (if design_size < 10: ((design_size*10)+70)
  171.                     else: ((design_size*7.5)+95)fi)/360pt#;
  172.  
  173. cap_band#:=        % uppercase thickness above/below lobes
  174.     (if design_size < 10: ((design_size*10)+70)
  175.                     else: ((design_size*7.5)+95)fi)/360pt#;
  176.  
  177. cap_notch_cut#:=   % max breadth above/below uppercase notches
  178.                            (design_size) * pt#;
  179.  
  180. serif_drop#:=      % vertical drop of sloped serifs
  181.                            (design_size*3)/360pt#;
  182.  
  183. stem_corr#:=       % for small refinements of stem breadth
  184.     (if design_size < 10: ((design_size*1)+10)
  185.                     else: (20)fi)/360pt#;
  186.  
  187. vair_corr#:=       % for small refinements of hairline height
  188.     (if design_size < 10: ((design_size*1)+5)
  189.                     else: (15)fi)/360pt#;
  190.  
  191. apex_corr#:=       % extra width at diagonal junctions
  192.     (if design_size <  8: ((design_size*design_size*5) -
  193.                            (design_size*95)+440)
  194.                     else: (0)fi)/360pt#;
  195.  
  196. o#:=               % amount of overshoot for curves
  197.     (if design_size <  7: (30)
  198.  elseif design_size <  8: ((design_size*10)-40)
  199.  elseif design_size < 10: (40)
  200.                     else: ((design_size*5)-10)fi)/360pt#;
  201.  
  202. apex_o#:=          % amount of overshoot for diagonal junctions
  203.     (if design_size < 10: (30)
  204.                     else: ((design_size*5)-20)fi)/360pt#;
  205.  
  206. slant:=            % tilt ratio $(\Delta x/